package hottargui.domain;

public interface DeckOfCards {


	/** how many cards are in the deck
	 * @return number of cards in the deck
	 */
	int countCardsInDeck();	

	/** puts one card on top of the deck 
	 */
	void putCardOnDeck(Card card);


	/** return the Tribecard (that is PlayerColor) on top of deck and delete from stack 
	 * @return a PlayerColor indicating the color of the card.
	 */
	Card takeCardFormTopOfDeck();


	/**   
	 * This method randomizes the deck.
	 */
	void shuffle();

	/**
	 * 
	 * @param playerColor the players color 
	 * @return the number of cards in a givet deck with a given color
	 */
	int getNumberOfTribeCards(PlayerColor playerColor);


	/**
	 * Prints the cards in the deck on console.
	 *
	 */
	void printCardsInDeck();


	/**
	 * First to emptys an existing deck 
	 * Then fills it with cards according to diceValue and gamerules 
	 * @param diceValue the value of the dice 
	 */
	void createCardsOnDeck(int diceValue);


	/** gets the facevalue of dice up on wich the deck 
	 * 	was created.
	 * @return int the facevalue of the dice on witch the deck was createt  
	 */
	public int getCurrentDeckBasedDiceValue();	


}
